locale.h
এবং তার ব্যবহারlocale.h
হেডার ফাইলটি সি প্রোগ্রামিং ভাষায় লোকেল (Locale) সেটিংস ম্যানেজমেন্টের জন্য ব্যবহৃত হয়। লোকেল হলো এমন একটি পদ্ধতি যা বিভিন্ন দেশের ভাষা, মুদ্রা, সময়, সংখ্যা বিন্যাস ইত্যাদি সঠিকভাবে প্রয়োগ করতে সাহায্য করে। লোকেল ব্যবহার করে প্রোগ্রামকে বিভিন্ন ভাষা ও সংস্কৃতির জন্য উপযোগী করা যায়।
লোকেল সেটিংসের মাধ্যমে প্রোগ্রামটি নির্ধারণ করতে পারে যে কীভাবে বিভিন্ন ভাষায় সংখ্যার বিন্যাস, মুদ্রার সিম্বল, ডেট এবং সময়ের ফরম্যাট, অথবা পাঠ্য পরিমাপ করা হবে।
locale.h
এর ফাংশনসমূহlocale.h
এর কিছু গুরুত্বপূর্ণ ফাংশন এবং কনস্ট্যান্ট নিয়ে নিচে আলোচনা করা হলো।
setlocale()
– লোকেল সেট করাsetlocale()
ফাংশনটি ব্যবহার করে প্রোগ্রামে লোকেল সেট করা যায়। এটি প্রোগ্রামের জন্য নির্দিষ্ট ক্যাটেগরির লোকেল সেট করে, যেমন সংখ্যা বিন্যাস, মুদ্রা, তারিখ ইত্যাদি।
সিঙ্কট্যাক্স:
char *setlocale(int category, const char *locale);
category
: কোন ধরনের লোকেল সেট করতে হবে তা নির্ধারণ করে। কিছু সাধারণ ক্যাটেগরি হলো:LC_ALL
: সব ক্যাটেগরির লোকেল সেট করে।LC_NUMERIC
: সংখ্যা বিন্যাসের লোকেল সেট করে।LC_TIME
: তারিখ এবং সময় বিন্যাসের লোকেল সেট করে।LC_MONETARY
: মুদ্রা বিন্যাসের লোকেল সেট করে।LC_COLLATE
: স্ট্রিং তুলনার লোকেল সেট করে।LC_CTYPE
: ক্যারেক্টার ক্লাসিফিকেশন এবং কনভার্শনের লোকেল সেট করে।locale
: লোকেলের নাম (যেমন "en_US"
, "fr_FR"
, ইত্যাদি)। "C"
বা "POSIX"
লোকেল মানে ডিফল্ট লোকেল। যদি NULL
পাস করা হয়, তাহলে বর্তমান লোকেল নাম রিটার্ন হয়।#include <stdio.h>
#include <locale.h>
int main() {
// LC_ALL ক্যাটেগরির জন্য "en_US.UTF-8" লোকেল সেট করা
setlocale(LC_ALL, "en_US.UTF-8");
printf("Locale set to English (United States).\n");
// বর্তমান লোকেল সেটিংস দেখানো
printf("Current locale: %s\n", setlocale(LC_ALL, NULL));
return 0;
}
localeconv()
– লোকেল কনভেনশন পেতেlocaleconv()
ফাংশনটি মুদ্রা এবং সংখ্যা বিন্যাস সম্পর্কিত লোকেল কনভেনশন পেতে ব্যবহৃত হয়। এটি একটি struct lconv
টাইপের পয়েন্টার রিটার্ন করে, যাতে মুদ্রা এবং সংখ্যা বিন্যাসের কনভেনশন সংরক্ষিত থাকে।
সিঙ্কট্যাক্স:
struct lconv *localeconv(void);
struct lconv
এর কিছু গুরুত্বপূর্ণ ফিল্ডসমূহ:
decimal_point
: দশমিক বিন্দুর সিম্বল।thousands_sep
: হাজার বিভাজকের সিম্বল।currency_symbol
: মুদ্রার সিম্বল।mon_decimal_point
: মুদ্রার দশমিক বিন্দু।mon_thousands_sep
: মুদ্রার হাজার বিভাজক।#include <stdio.h>
#include <locale.h>
int main() {
setlocale(LC_ALL, "en_US.UTF-8"); // লোকেল সেট করা
struct lconv *lc = localeconv(); // লোকেল কনভেনশন পেতে
printf("Decimal point: %s\n", lc->decimal_point);
printf("Thousands separator: %s\n", lc->thousands_sep);
printf("Currency symbol: %s\n", lc->currency_symbol);
printf("Monetary decimal point: %s\n", lc->mon_decimal_point);
return 0;
}
setlocale()
এর ব্যবহারsetlocale()
ফাংশনটি নির্দিষ্ট ক্যাটেগরি অনুযায়ী লোকেল সেট করতে পারে, যেমন:
LC_NUMERIC – সংখ্যা বিন্যাস পরিবর্তন
setlocale(LC_NUMERIC, "fr_FR.UTF-8"); // ফ্রেঞ্চ সংখ্যা বিন্যাস
LC_TIME – সময় বিন্যাস পরিবর্তন
setlocale(LC_TIME, "de_DE.UTF-8"); // জার্মান সময় বিন্যাস
LC_MONETARY – মুদ্রা বিন্যাস পরিবর্তন
setlocale(LC_MONETARY, "ja_JP.UTF-8"); // জাপানিজ মুদ্রা বিন্যাস
LC_ALL – সব ক্যাটেগরি পরিবর্তন
setlocale(LC_ALL, "es_ES.UTF-8"); // স্প্যানিশ লোকেল
locale.h
এর ব্যবহারিক গুরুত্বlocale.h
ব্যবহার করে প্রোগ্রামটি বিভিন্ন ভাষা ও সংস্কৃতির জন্য উপযোগী করা যায়।ফাংশন | কাজ |
---|---|
setlocale() | নির্দিষ্ট ক্যাটেগরির জন্য লোকেল সেট করে |
localeconv() | লোকেল কনভেনশন পেতে ব্যবহৃত হয় |
locale.h
হেডার ফাইলটি ব্যবহার করে প্রোগ্রামকে বিভিন্ন ভাষা ও সংস্কৃতির উপযোগী করা সহজ হয়। এর মাধ্যমে প্রোগ্রামটি ব্যবহারকারীর স্থানীয় সেটিংস অনুযায়ী ডেটা প্রদর্শন করতে পারে।
common.read_more